home *** CD-ROM | disk | FTP | other *** search
/ SGI Developer Toolbox 6.1 / SGI Developer Toolbox 6.1 - Disc 1.iso / toolbox / documents / OpenGL / extensions / spec / texture_border_clamp.spec < prev    next >
Encoding:
Text File  |  1996-11-11  |  5.2 KB  |  173 lines

  1. Name
  2.  
  3.     SGIS_texture_border_clamp
  4.  
  5. Name Strings
  6.  
  7.     GL_SGIS_texture_border_clamp
  8.  
  9. Version
  10.  
  11.     $Date: 1995/09/30 02:32:49 $ $Revision: 1.1 $
  12.  
  13. Number
  14.  
  15.     36
  16.  
  17. Dependencies
  18.  
  19.     EXT_texture3D affects the definition of this extension
  20.     SGIS_texture_filter4 affects the definition of this extension
  21.  
  22. Overview
  23.  
  24.     The base OpenGL provides clamping such that the texture coordinates are
  25.     limited to exactly the range [0,1].  When a texture coordinate is
  26.     clamped using this algorithm, the texture sampling filter straddles the
  27.     edge of the texture image, taking 1/2 its sample values from within the
  28.     texture image, and the other 1/2 from the texture border.  It is
  29.     sometimes desirable for a texture to be clamped to the border color,
  30.     rather than to an average of the border and edge colors.
  31.  
  32.     This extension defines an additional texture clamping algorithm.
  33.     CLAMP_TO_BORDER_SGIS clamps texture coordinates at all mipmap levels
  34.     such that NEAREST and LINEAR filters return the color of the border
  35.     texels.  When used with FILTER4 filters, the filter operation of
  36.     CLAMP_TO_BORDER_SGIS is defined but doesn't result in a nice
  37.     clamp-to-border color.
  38.  
  39. Issues
  40.  
  41.     *   Is the arithmetic for FILTER4 filters correct?  Is this the right
  42.     thing to do?
  43.  
  44. New Procedures and Functions
  45.  
  46.     None
  47.  
  48. New Tokens
  49.  
  50.     Accepted by the <param> parameter of TexParameteri and TexParameterf,
  51.     and by the <params> parameter of TexParameteriv and TexParameterfv, when
  52.     their <pname> parameter is TEXTURE_WRAP_S, TEXTURE_WRAP_T, or
  53.     TEXTURE_WRAP_R_EXT:
  54.  
  55.     CLAMP_TO_BORDER_SGIS
  56.  
  57. Additions to Chapter 2 of the 1.0 Specification (OpenGL Operation)
  58.  
  59.     None
  60.  
  61. Additions to Chapter 3 of the 1.0 Specification (Rasterization)
  62.  
  63.     GL Specification Table 3.7 is updated as follows:
  64.  
  65.     Name                Type        Legal Values
  66.     ----                ----        ------------
  67.     TEXTURE_WRAP_S            integer        CLAMP, REPEAT,
  68.                             CLAMP_TO_EDGE_SGIS,
  69.                             CLAMP_TO_BORDER_SGIS
  70.     TEXTURE_WRAP_T            integer        CLAMP, REPEAT,
  71.                             CLAMP_TO_EDGE_SGIS,
  72.                             CLAMP_TO_BORDER_SGIS
  73.     TEXTURE_WRAP_R_EXT        integer        CLAMP, REPEAT,
  74.                             CLAMP_TO_EDGE_SGIS,
  75.                             CLAMP_TO_BORDER_SGIS
  76.     TEXTURE_MIN_FILTER        integer        NEAREST, LINEAR,
  77.                             NEAREST_MIPMAP_NEAREST,
  78.                             NEAREST_MIPMAP_LINEAR,
  79.                             LINEAR_MIPMAP_NEAREST,
  80.                             LINEAR_MIPMAP_LINEAR,
  81.                             FILTER4_SGIS,
  82.                             LINEAR_CLIPMAP_LINEAR_SGIX
  83.     TEXTURE_MAG_FILTER        integer        NEAREST, LINEAR,
  84.                             FILTER4_SGIS,
  85.                             LINEAR_DETAIL_SGIS,
  86.                             LINEAR_DETAIL_ALPHA_SGIS,
  87.                             LINEAR_DETAIL_COLOR_SGIS,
  88.                             LINEAR_SHARPEN_SGIS,
  89.                             LINEAR_SHARPEN_ALPHA_SGIS,
  90.                             LINEAR_SHARPEN_COLOR_SGIS,
  91.                             LINEAR_LEQUAL_R_SGIS,
  92.                             LINEAR_GEQUAL_R_SGIS
  93.     TEXTURE_BORDER_COLOR        4 floats    any 4 values in [0,1]
  94.     DETAIL_TEXTURE_LEVEL_SGIS    integer        any non-negative integer
  95.     DETAIL_TEXTURE_MODE_SGIS    integer        ADD, MODULATE
  96.     TEXTURE_MIN_LOD_SGIS        float        any value
  97.     TEXTURE_MAX_LOD_SGIS        float        any value
  98.     TEXTURE_BASE_LEVEL_SGIS        integer        any non-negative integer
  99.     TEXTURE_MAX_LEVEL_SGIS        integer        any non-negative integer
  100.     GENERATE_MIPMAP_SGIS        boolean        TRUE or FALSE
  101.     TEXTURE_CLIPMAP_OFFSET_SGIX    2 floats    any 2 values
  102.  
  103.     Table 3.7: Texture parameters and their values.
  104.  
  105.     CLAMP_TO_BORDER_SGIS texture clamping is specified by calling
  106.     TexParameteri with <target> set to TEXTURE_1D, TEXTURE_2D, or
  107.     TEXTURE_3D_EXT, <pname> set to TEXTURE_WRAP_S, TEXTURE_WRAP_T,
  108.     or TEXTURE_WRAP_R_EXT, and <param> set to CLAMP_TO_BORDER_SGIS.
  109.  
  110.     Let [min,max] be the range of a clamped texture coordinate, and let N
  111.     be the size of the 1D, 2D, or 3D texture image in the direction of
  112.     clamping.  Then in all cases
  113.  
  114.     max = 1 - min
  115.  
  116.     because the clamping is always symmetric about the [0,1] mapped range of
  117.     a texture coordinate.  When used with NEAREST or LINEAR filters,
  118.     CLAMP_TO_BORDER_SGIS defines a minimum clamping value of
  119.  
  120.     min = -1 / 2*N
  121.  
  122.     When used with CUBIC filters, CLAMP_TO_BORDER_SGIS defines a minimum
  123.     clamping value of
  124.  
  125.     min = -3 / 2*N
  126.  
  127. Additions to Chapter 4 of the 1.0 Specification (Per-Fragment Operations
  128. and the Framebuffer)
  129.  
  130.     None
  131.  
  132. Additions to Chapter 5 of the 1.0 Specification (Special Functions)
  133.  
  134.     None
  135.  
  136. Additions to Chapter 6 of the 1.0 Specification (State and State Requests)
  137.  
  138.     None
  139.  
  140. Additions to the GLX Specification
  141.  
  142.     None
  143.  
  144. Dependencies on EXT_texture3D
  145.  
  146.     If EXT_texture3D is not implemented, then the references clamping of 3D
  147.     textures in this file are invalid, and references to TEXTURE_WRAP_R_EXT
  148.     should be ignored.
  149.  
  150. Dependencies on SGIS_texture_filter4
  151.  
  152.     If SGIS_texture_filter4 is not implemented, then discussions about the
  153.     interaction of filter4 texture filters and the clamping function
  154.     described in this file are invalid, and should be ignored.
  155.  
  156. Errors
  157.  
  158.     None
  159.  
  160. New State
  161.  
  162.     Only the type information changes for these parameters:
  163.  
  164.     Get Value        Get Command        Type    Initial Value    Attrib
  165.     ---------        -----------        ----    -------------    ------
  166.     TEXTURE_WRAP_S    GetTexParameteriv    n x Z4    REPEAT        texture
  167.     TEXTURE_WRAP_T    GetTexParameteriv    n x Z4    REPEAT        texture
  168.     TEXTURE_WRAP_R_EXT    GetTexParameteriv    n x Z4    REPEAT        texture
  169.  
  170. New Implementation Dependent State
  171.  
  172.     None
  173.